<?php

namespace App\Http\Controllers\Admin;

use App\Models\Orm\Banner;
use App\Models\Orm\AwAuditRecord;
use App\Models\Orm\CooperativeCompany;
use App\Models\Orm\Product;
use App\Models\Orm\ProductAudit;
use App\Models\Orm\ProductLabels;
use App\Models\Orm\ProjectProduct;
use App\Models\Orm\Recommend;
use App\Models\Orm\SecondsKill;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Validator;

/**
 * 产品模块控制器
 *
 * Class ProductController
 * @package App\Http\Controllers\Admin
 */
class AdController extends Controller
{
    /**
     * 产品列表(展示页)
     *
     * @return \Illuminate\Http\Response
     */
    public function index(Request $request)
    {
        $user = auth('admin')->user();

        $data = Banner::orderby('id', SORT_DESC)->get();
        return view('admin.banner.index', compact('data'));

    }

    public function create(Request $request)
    {
        $user = auth('admin')->user();

        if ($request->isMethod('post')) {

            $request->flash();

//            // 验证数据
//            // TODO(先只做了部分必要验证,详细验证后期加)
//            $validator = Validator::make($request->all(), [
//                'name' => 'required|unique:' . Product::TABLE_NAME . ',name',
//                'pictrue' => 'required|image|max:2048',
//                'h5' => 'required|string',
//
////                'crowd' => 'required|array|min:1',
////                'review' => 'array|min:1',
//            ], [], [
//                'name' => '产品名称',
//                'pictrue' => '图片',
//                'h5' => 'h5链接',
//            ]);

//            if ($validator->fails()) {
//                return back()->withErrors($validator);
//            }


            $insert_data = $request->except(['_token', 'pictrue','s']);
            $product_logo = uploads($request->file('pictrue'), 'pictrue');
            $insert_data['pictrue'] = $product_logo;


            // 用户ID
            $insert_data['created_at'] = date('Y-m-d H:i:s');
            $insert_data['updated_at'] = date('Y-m-d H:i:s');
//            dd($insert_data);
            Banner::create($insert_data);
            return redirect('/admin/ad/index')->with(['success' => '您的申请已提交,请耐心等等待审核']);
        }

        $data = new Banner();

        return view('admin.banner.create', compact('data'));
    }


    /**
     * 产品详情展示页
     *
     * @param  int $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        // 当前用户
        $user = auth('admin')->user();

        // 产品信息
        $data = Banner::find($id);

        if (!$data) {
            return back()->withErrors('未找到产品');
        }

        return view('admin.banner.show', compact('data'));
    }


    public function edit(Request $request, $id)
    {
        // 当前用户
        $user = auth('admin')->user();

        // 产品信息
        $product = Banner::find($id);

        if (!$product) {
            return back()->withErrors('未找到产品');
        }

        // post请求、提交表单
        if ($request->isMethod('post')) {

            $request->flash();

//            // 验证数据
//            // TODO(先只做了部分必要验证,详细验证后期加)
//            $validator = Validator::make($request->all(), [
//                'pictrue' => 'image|max:2048',
//            ], [], [
//                'pictrue' => '广告图片',
//            ]);
//
//            if ($validator->fails()) {
//                return back()->withErrors($validator);
//            }
            $update_data = $request->except(['_token','old_pictrue']);

            //            // 处理产品广告
            if ($request->hasFile('pictrue')) {
                // $ad_image = 'http://test.img';
                $product_logo = uploads($request->file('pictrue'), 'pictrue');

                $update_data['pictrue'] = $product_logo;
            }


            // 修改时间
            $update_data['updated_at'] = date('Y-m-d H:i:s');

            // 更改产品表
            $product->update($update_data);

            return redirect('/admin/ad/show/' . $product->id)->with(['success' => '修改成功']);
        }

        $data = $product;



        return view('admin.banner.edit', compact('data'));
    }


    /**
     * 产品上线
     *
     * @param  int $id
     * @return \Illuminate\Http\Response
     */
    public function online($id)
    {


        // 当前用户
        $user = auth('admin')->user();

        // 产品信息
        $product = Banner::find($id);


        if (!$product) {
            return back()->withErrors('未找到产品');
        }

        if ($product->status != Product::STATUS_OFF) {
            return back()->withErrors('该产品已经上线');
        }
        $product ->status = 1;

        $product ->save();

        return back()->with(['success' => '您的上线申请已提交,请耐心等待审核结果']);
    }

    /**
     * 产品下线
     *
     * @param  int $id
     * @return \Illuminate\Http\Response
     */
    public function offline($id)
    {
        /**
         * 清除分类主题产品对照表关联数据
         * 清除产品标签表关联数据
         * 清除热门推荐表关联数据
         * 清除秒杀表关联数据
         */
        // 当前用户
        $user = auth('admin')->user();

        // 产品
        $product = Banner::find($id);

        if (!$product) {
            return back()->withErrors('未找到相关广告');
        }


        if ($product->status != Product::STATUS_ON) {
            return back()->withErrors('该产品未上线');
        }
        $product ->status = 0;

        $product ->save();
        return back()->with(['success' => '产品下线成功']);
    }


}